package 匿名内部类的使用;


public class MainTest {
	String names = "hello";

	public static void main(String[] args) {
		//test1();
		test2("testParam");
	}

	private static void test2(String param) {
		// lambda变量可以使用参数，但是
		//表达式引用的本地变量必须是最终变量或实际上的最终变量
		IUser lambdcUserFunc = () -> {
			System.out.println(param);
			//test3();
			System.out.println("重写之后的sayName方法");
		};
		new IdCard().readInfo("msg", lambdcUserFunc);
		test3();
	}

	private static void test3() {
		System.out.println("test3");
		//this.names = this.names + "1";
	}

	private static void test1() {
		new IdCard().readInfo("msg", new User() {
			@Override
			public void sayName() {
				// 匿名内部类使用重写的方式
				System.out.println("重写之后的 sayName方法");
			}
		});
	}
}
